/*
 * File name:       serialport.cpp
 * Author:陈达      Version:   V1.0        Date:   2018.5.22
 * Description:     串口操作的基础类，包括打开、关闭、读写、清空缓冲区
 * Others:          // 其它内容的说明
 * History:         // 修改历史记录列表，每条修改记录应包括修改日期、修改
                    // 者及修改内容简述
    1. Date:        2018.5.22
       Author:      陈达
       Modification:正式开始写注释
    2. ...
 */

#ifndef _SERIALPORT_H
#define _SERIALPORT_H

#include <stdlib.h>

/*
 * Function:        void flush(int fd)
 * Description:     清空缓冲区
 * Input:           int fd   设备描述符
 * Output:          null
 * Return:          void
 * History:         // 历史修改记录
      <author>  <time>   <version >   <desc>
        陈达   18/05/22     1.0        初稿
 */
void flush(int fd);
/*
 * Function:        int open_serialport(const char* path, int baudrate, int flags)
 * Description:     打开串口
 * Input:           char* path   串口路径
                    int baudrate  波特率
                    int flags    没用到
 * Return:          int  >=0 : 成功打开串口，<0:打开失败
 * History:         // 历史修改记录
      <author>  <time>   <version >   <desc>
        陈达   18/05/22     1.0        初稿
 */
int open_serialport(const char* path, int baudrate, int flags);
void close_serialport(int fd);
/*
 * Function:        int read_serialport(int fd, uint8_t *pbuf, int len, int timems)
 * Description:     读串口
 * Input:           int fd          设备描述符
                    uint8_t *pbuf   用来接收返回数据的数组
                    int len         数组长度
                    int timems      超时时间（毫秒）
 * Return:          int  >=0，接收到数据的长度
 * History:         // 历史修改记录
      <author>  <time>   <version >   <desc>
        陈达   18/05/22     1.0        初稿
 */
int read_serialport(int fd, uint8_t *pbuf, int len, int timems);
void write_serialport(int fd,const uint8_t* cmd, int len);

/*
 *  中断read_serialport函数的读数据
 * */
void stop_read();

#endif